Channel hopping sequence generation with variable channel width

ABSTRACT

In some aspects, a channel hopping sequence for communication on a mesh network is generated. The hopping sequence may include multiple channels assigned to respective positions in the hopping sequence. In some cases, a first channel is assigned to a first position such that the first channel may transmit communications in a first transmission mode, such as a low-bandwidth transmission mode. In addition, an additional channels adjacent to the first channel is also assigned to the first position such that the combination of the first channel and additional channel may transmit communications in a second transmission mode, such as a high-bandwidth transmission mode. In some cases, a whitelist is determined based on the assigned channels. The whitelist may indicate channels that do not conflict with the assigned channels during transmission of a communication. In addition, channels may be assigned to the hopping sequence based on the whitelist.

CROSS-REFERENCE TO RELATED APPLICATIONS

This is a continuation of U.S. patent application Ser. No. 16/751,526entitled “Channel Hopping Sequence Generation With Variable ChannelWidth” filed Jan. 24, 2020, which is a continuation of U.S. patentapplication Ser. No. 16/009,930 entitled “Channel Hopping SequenceGeneration With Variable Channel Width” filed Jun. 15, 2018, now issuedas U.S. Pat. No. 10,595,300, the contents of each of these beingincorporated herein by reference.

FIELD OF THE INVENTION

This disclosure relates generally to the field of wireless datatransmission, and more specifically relates to determining a channelhopping sequence for multiple rates of data transmission.

BACKGROUND

Components in a wireless mesh network may exchange data via at least oneradio frequency (RF). A component on the mesh network may transmit datato another component via a channel that includes a range of one or morefrequencies, or a channel “width.” In addition, the component may selectan additional channel, or “hop” to the additional channel. For example,the mesh network component may hop to the additional channel if thecomponent is transmitting data. Also, another component on the meshnetwork may hop to the additional channel, and begin transmitting datavia the additional channel. The mesh network may experience a“collision” if multiple components hop to a particular channel and begintransmitting data. For example, the data on the particular channel maybecome corrupted or unintelligible to a receiving device, based on thecollision.

In some aspects, the wireless mesh network may generate a channelhopping sequence. The hopping sequence may indicate an order in whichcomponents on the mesh network select channels for data transmission. Insome cases, adherence to the hopping sequence may allow multiplecomponents on the mesh network to transmit data using respectivemultiple channels without causing collisions. In addition, the RF meshnetwork may determine a channel hopping sequence based on a technicalstandard related to operation of a wireless personal area network.However, the channel hopping sequence may be determined based on a givennumber of channels each having a given width. In such cases, a componenton the mesh network may transmit data based on the width of the nextavailable channel in the hopping sequence. The component may beprohibited from using adjacent channels (e.g., channels with adjacentranges of frequencies) to prevent potential collisions, even if theadjacent channels are not occupied by other transmission from othercomponents.

It is desirable to develop techniques to generate a channel hoppingsequence that allows a component of a mesh network to transmit onadjacent channels to the selected channel. It is also desirable togenerate a hopping sequence that reduces potential collisions on theadjacent channels if multiple components of the mesh network aretransmitting.

SUMMARY

According to certain implementations, a sequence generation module mayreceive an indication of a group of channels, and an indication of anumber from a pseudo-random number generator or a pseudo-random sequenceof numbers. The sequence generation module may assign a first channel,from the group of channels, to a hopping sequence at a first position.The assignment may be based on the number from the pseudo-random numbergenerator or the pseudo-random sequence. In addition, the sequencegeneration module may select an additional channel based on the firstchannel, such as an additional channel that is adjacent to the firstchannel. In some cases, frequencies included in a width of the firstchannel may be available at the first time slot for a first transmissionmode. In addition, frequencies included in a combined width of the firstand additional channels may be available at the first position for asecond transmission mode. The sequence generation module may determine awhitelist subset of the group of channels, where the whitelist subsetomits the first and additional channels. In addition, the sequencegeneration module may assign a second channel, from the whitelistsubset, to the hopping sequence at a second position, based on anothernumber from the pseudo-random number generator or in the pseudo-randomsequence.

These illustrative implementations are mentioned not to limit or definethe disclosure, but to provide examples to aid understanding thereof.Additional implementations are discussed in the Detailed Description,and further description is provided there.

BRIEF DESCRIPTION OF THE DRAWINGS

Features, implementations, and advantages of the present disclosure arebetter understood when the following Detailed Description is read withreference to the accompanying drawings, where:

FIG. 1 is a block diagram depicting an example of a mesh networkincluding a collector node and metering nodes,

FIG. 2 is a diagram depicting an example of a conventional low-bandwidthtransmitted signal,

FIG. 3 is a diagram depicting an example of a mixed-signal environment,

FIG. 4 is a diagram depicting a mixed-signal environment in which acollision event occurs,

FIG. 5 is a flow chart depicting an example of a process for generatinga hopping sequence,

FIG. 6 is a flow chart depicting an example of a process 600 forupdating a whitelist subset of channels from a group of channels in achannel hopping sequence,

FIG. 7 is a diagram depicting a mixed signal environment according toaspects of the present disclosure,

FIG. 8 is a diagram depicting an example of a reserved transmissionblock for transmission of a high- or low-bandwidth signal, and

FIG. 9 is a diagram depicting an example of a computing system forgenerating a channel hopping sequence.

DETAILED DESCRIPTION

As discussed above, prior techniques for generating channel hoppingsequences do not allow network components to transmit on adjacentchannels while reducing potential collisions. Certain implementationsdescribed herein provide for generating a hopping sequence based on asubset of channels. In some aspects, the subset of channels may omit achannel that is assigned to the hopping sequence. In addition, thesubset of channels may omit another channel that is adjacent to theassigned channel in the hopping sequence. For example, the generatedhopping sequence may include, at a first position, an assigned channelthat is available for transmissions on a mesh network. An additionalchannel may be selected based on the assigned channel, such as anadditional channel that is adjacent to the assigned channel. A blacklistsubset that includes the assigned and additional channels may bedetermined. A whitelist subset that omits the assigned and additionalchannels may be determined. A second channel may be assigned to thehopping sequence at a second position, such as a second channel selectedfrom the whitelist subset.

In some aspects, a node on the mesh network may select a channel basedon the hopping sequence. For example, the node may select a firstchannel at a first time slot, as indicated by a first position in thehopping sequence, to use for a transmission of data. The node maydetermine, such as based on a link quality indicator, that a signalstrength between the node and a recipient (e.g., another node on themesh network) is above a threshold signal level. In some cases, the linkquality is determined by a link quality assessment module. Responsive todetermining that the signal strength is above the threshold signallevel, the node may select a high-bandwidth transmission mode, andtransmit the data via the first channel and an additional channeladjacent to the first channel. For example, the node may transmit thedata using a combination of the frequencies included in the firstchannel and the additional channel. During the transmission by the node,an additional node may select a second channel at a second time slot, asindicated by a second position in the hopping sequence. In such cases,as the hopping sequence was generated based on a whitelist that omittedthe first and additional channels, data transmitted via first andadditional channels may have a reduced likelihood of collisions withdata transmitted via the second channel.

Referring now to the drawings, FIG. 1 is a block diagram depicting anexample of a mesh network 100 including a collector node and meteringnodes communicatively coupled to a head-end system. For instance, ahead-end system 101 may have bidirectional communication with acollector, such as collector 102. In some cases, collector 102 maycommunicate to head-end system 101 via one or more networks, such as aprivate network, a local area network, a wide area network, theInternet, or any other suitable network. In some aspects, the collector102 may communicate with multiple metering nodes, such as metering nodes103 a, 103 b, 103 c, and 103 d (collectively referred to herein asmetering nodes 103). For example, the collector 102 may receive datadescribing utility metering information from one or more of the meteringnodes 103 (e.g., consumption information), or from the head-end system101 (e.g., pricing information). In addition, the collector 102 mayprovide data to the head-end system 101, to one or more of the meteringnodes 103.

In some aspects, one or more of the metering nodes 103 may communicatewith one or more of the other metering nodes. For example, the meteringnode 103 a may communicate with the metering node 103 b. Additionalmetering nodes may or may not communicate with metering node 103 a. Forexample, the metering node 103 c may communicate with the metering node103 d, but not with metering node 103 a. The collector 102 may receivecommunications from one or more of the metering nodes 103. In addition,metering node 103 a may communicate to the collector 102 informationfrom metering node 103 a and metering node 103 b. In some cases, aconfiguration of the mesh network 100 may change, such as based on aweak or strong signal strength detected from the collector 102 or one ormore of the metering nodes 103. For example, based on a weak signalstrength detected between metering nodes 103 a and 103 b, metering node103 b may establish a communication with metering node 103 c. The signalstrength between nodes may be determined by a link quality assessmentmodule that is included in the metering node 103 b. Additional signalstrengths between nodes may be determined by addition link qualityassessment modules, included respectively in one or more of the meteringnodes 103, the collector 102, or the head-end system 101.

In some implementations, nodes on the mesh network 100 may transmit datavia channels, based on a channel hopping sequence. In addition, one ormore of the nodes on the mesh network 100 generate the channel hoppingsequence, such as via a sequence generation module that is included inone or more of the metering nodes 103, to collector 102, or the head-endsystem 101. The sequence generation module may generate the channelhopping sequence based on information received from a pseudo-randomnumber generator, such as a pseudo-random number or sequence ofpseudo-random numbers. In one aspect, the sequence generation module mayassign at least the next channel in the generated sequence, or it mayassign multiple channels in the sequence. In some aspects, a node on themesh network 100 may select a communication channel based on the hoppingsequence. For example, metering node 103 a may select a first channelfor transmitting data to the collector 102. In some aspects, themetering node 103 a may select the channel based in part on a signalstrength between the metering node 103 a and the collector 102. Inaddition, each node of the mesh network 100 may store data indicating alist of communication channels capable of transmitting data, such as achannel list indicating communication channels, center frequencies, orfrequency ranges associated with the channels.

FIG. 2 is a diagram depicting an example of a transmission environment200 in which a signal having a channel width and a transmission time maybe transmitted. For example, the transmission environment 200 may havemultiple timeslots 201 a-201 s, collectively referred to herein astimeslots 201, and multiple communication channels 202 a-202 i,collectively referred to herein as communication channels 202. Each ofthe channels 202 may include one or both of a center frequency or arange of frequencies. For example, the communication channel 202 a mayinclude a center frequency of about 902.2 MHz, or a range of frequenciesfrom about 902 MHz to about 902.4 MHz. In some cases, a communication,such as a group of one or more data packets, is transmitted via one ormore of the frequencies included in the communication channel 202 a. Thecommunication may be transmitted via a signal that is carried on one ormore of the channel frequencies.

In some aspects, the transmission environment 200 may be associated witha hopping sequence, such as a frequency hopping spread spectrum (FHSS)environment. FHSS is a method of transmitting radio communications byswitching carrier frequencies among multiple channels using apseudo-random number (or pseudo-random sequence of numbers), that isknown by both the transmitting node and the receiving node. In someimplementations, the FHSS environment, or communications transmitted inthe FHSS environment, may conform to local or global criteria. Forexample, and not by way of limitation, the FHSS environment and/ortransmitted communications may conform to standards set by the FederalCommunications Commission (FCC), such as C.F.R. 47 § 15.247.

In an aspect, a low-speed communication 203 may be transmitted on acommunication channel 202 d during time slots 201 a-201 g. The low-speedcommunication 203 may have a bandwidth. In some cases, the bandwidth maybe associated with a channel width (e.g., of channel 202 d) and atransmission time associated with the time slots 201 required totransmit the low-speed communication 203. For example, low-speedcommunication 203 is illustrated as being transmitted during seven ofthe time slots 201, such as the time slots 201-201 g. In addition, otherlow-speed communications could require a larger or smaller number of thetime slots 201.

FIG. 3 is a diagram depicting an example of a mixed-signal transmissionenvironment 300, in which communications associated with variousbandwidths may be transmitted. For example, the mixed-signal environment300 may have multiple time slots 301 a-301 s, collectively referred toherein as time slots 301, and multiple communication channels 302 a-302i, collectively referred to herein as communication channels 302. Insome cases, the mixed-signal environment 300 could be a transmissionenvironment with at least two signals with different transmissionchannel widths. In addition, the mixed-signal transmission environmentcould include a frequency hopping spread spectrum environment with atotal bandwidth of about 26 Megahertz (MHz) of operating bandwidth andabout 65 channels. Other combinations of total bandwidth and number ofchannels are possible.

In one aspect, the mixed-signal transmission environment is capable oftransmission of a low-speed communication 303 and high-speedcommunication 304. For example, low-speed communication 303 may betransmitted via a low-power signal capable of being transmitted longdistances, such as a signal characterized by a channel width of about400 kilohertz (kHz), a minimum datarate of about 50 kilobits per second(kbps), a maximum physical layer (PHY) payload of about 1500 bytes, anda transmission time of about seven of the time slots 301 (e.g., timeslots 301 a-301 g). In addition, the low-power signal may be capable ofbeing transmitted long distances, such that the low-speed communication303 may be received by a node that is relatively far away. In someaspects, a channel width of 400 kHz may be represented by a particularone of the communication channels 302, such as communication channel 302d including a center frequency of about 903.4 MHz or range offrequencies from about 903.2 MHz to about 903.6 MHz.

In addition, the high-speed communication 304 may be transmitted via ahigh-power signal capable of being transmitted intermediate distances,such as a signal characterized by a channel width of about 1200kilohertz (kHz), a minimum datarate of about 400 kilobits per second(kbps), a maximum physical layer (PHY) payload of about 1500 bytes, anda transmission time of about two of the time slots 301 (e.g., time slots301 d-301 e). In some aspects a channel width of 1200 kHz may berepresented by adjacent 400 kHz channels, such as the adjacent channels302 f, 302 g, and 302 h. Other combinations of signal channel widths,datarates, PHY payloads, and transmission times are, however, possible.

In some aspects, communications that are transmitted in the mixed-signaltransmission environment 300 are transmitted at a bandwidth that isbased on an available number of the communication channels 302. Forexample, the low-speed communication 303 may be transmitted via thechannel 302 d at a relatively low bandwidth. In addition, the high-speedcommunication 304 may be transmitted via the combined channels 302 f-302h at a relatively high bandwidth. The maximum datarate of a channel maybe calculated using the Shannon Theorem, which indicates that a maximumdatarate is dependent on channel bandwidth (in Hz) and a logarithmrelated to the signal to noise ratio. In some aspects, a higher channelbandwidth (e.g., a greater range of frequencies) may generally enable ahigher maximum datarate to be transmitted via the channel. In addition,a lower channel bandwidth (e.g., a narrower range of frequencies) maygenerally enable a lower maximum datarate to be transmitted via thechannel. In some aspects, a communication that is transmitted viamultiple adjacent channels may be transmitted at a higher datarate, suchas a datarate that is based on the combined frequency range of theadjacent channels.

FIG. 4 is a diagram depicting an example of a mixed-signal transmissionenvironment 400, in which communications associated with variousbandwidths may be transmitted. For example, the mixed-signal environment400 may have multiple time slots 401 a-401 s, collectively referred toherein as time slots 401, and multiple communication channels 402 a-402i, collectively referred to herein as communication channels 402. Insome cases, the mixed-signal environment 400 could include at least twosignals with different communication channel widths. The mixed-signalenvironment 400 can also include an FHSS generated based on apseudo-random sequence.

In some aspects, communications transmitted in the mixed-signalenvironment 400 may be transmitted according to a channel hoppingsequence that is determined for the mixed-signal environment 400. Inaddition, the channel hopping sequence may be determined based onmultiple types of communications or transmission modes. For example,low-speed communication 404 may be a first communication transmitted inthe transmission environment 400. In this non-limiting example, a firstposition in the channel hopping sequence may be associated with one ormore of a time slot 401 a or a channel 402 f. A first node, such as ametering node included in a mesh network, may begin communicatingaccording to the first position in the channel hopping sequence, such asby transmitting via the first channel 402 f at time slot 401 a. In thenext time slot 401 b, an additional communication is not begun (e.g., nonodes in the mesh network begin any additional communications).

In time slot 401 c, high-speed communication 403 may be a secondcommunication transmitted in the transmission environment 400. In thisnon-limiting example, the high-speed communication 403 may betransmitted at a higher bandwidth via additional channels, such as thechannels 402 b, 402 c, and 402 d. For example, a second position in thechannel hopping sequence may be associated with one or more of a secondtime slot 401 c, a channel 402 c, and one or more additional channels402 d or 402 b. In this case, the hopping sequence may indicate at leastthe center channel 402 c. A second node may begin communicatingaccording to the second position in the channel hopping sequence, suchas by transmitting the high-speed communication 403 via the channel 402c. In addition, the second node may access channels adjacent to theindicated center channel 402 c, such as channels 402 b and 402 d, fortransmission of the high-speed communication 403.

In another aspect, at time slot 401 e, an additional node beginstransmitting high-speed communication 405. In this case, the hoppingsequence includes an additional position indicating that channel 402 gis available at time slot 401 e. In addition, the additional node mayaccess the adjacent channels 402 f and 402 h for transmission of thehigh-speed communication 405. The resulting access of the adjacentchannels creates collision event 406. For example, a collision event canbe where the low-speed communication 404 and the high-speedcommunication 405 are transmitted at one or more same time slots on oneor more same channels (e.g., the time slots 401 e and 401 f on channel402 f). Alternatively, it can be where multiple high-speedcommunications or multiple low-speed communications are transmitted at asame time slot on a same channel. In some cases, the result of acollision event is communication loss at a receiving node.

In addition, a component that is transmitting on a particular channelmay inadvertently transmit on an adjacent channel. For example, if thecomponent is transmitting at a relatively higher power, the transmissionmay be detectable at frequencies that are not included in the particularchannel, but which are nearby (i.e., in the frequency spectrum) tofrequencies in the particular channel. Although the adjacent channel isnot assigned to the component for the transmission, power related to thetransmission may be detectable on one or more adjacent channels (e.g.,“power leakage”). Such “leakage” of power related to the transmissionmay cause interference on the adjacent channels.

In some aspects, assigning a variety of available channels to thehopping sequence from across the spectrum of available channels (e.g.,“spreading” the hopping sequence across the available channels) mayimprove transmissions on the mesh network. For example, spreading thehopping sequence across the available spectrum may decrease a likelihoodof collision events, such as a collision event on an adjacent channelused for separate communications by separate network components. Inaddition, spreading the hopping sequence across the available spectrummay decrease a likelihood of interference, such as interference frompower leakage onto frequencies in a channel that is adjacent to anassigned channel.

In some aspects, a guard channel may be selected from the communicationchannels 402, such as to provide a buffer between a particularcommunication channel (or group of channels) and other communicationchannels. For example, the channel 402 e may be selected as a guardchannel 402 e adjacent to communication channel 402 f The guard channel402 e may be reserved to provide a buffer between communication channel402 f and other channels, such as communication channel 402 d. Forexample, the guard channel 402 e may include a range of frequencies thatare adjacent to the frequency range of the communication channel 402 f,but on which little or no data is transmitted. In addition, a guardchannel may be reserved for a time duration, such as a duration based ontime slots associated with the communication channel being guarded. Forexample, the guard channel 402 e may be reserved for time slots 401a-401 g, based on a duration of the low-speed communication 404transmitted on the communication channel 402 f. In some cases, a guardchannel may provide a buffer from other communication channels, suchthat transmissions on the other communication channels are unlikely tointerfere with transmissions on the particular communication channel.

In some implementations, channels may be included in a blacklist oromitted from a whitelist in addition to the channel selected for thehopping sequence. For example, the channel hopping sequence may begenerated based on at least one pseudo-random number corresponding to atleast the next channel, such that the channel is assigned to aparticular position in the hopping sequence. Additional channels, suchas guard channels or adjacent channels associated with varioustransmission modes, may be also associated with the particular position.The blacklist may be updated to include the assigned channel and theadditional channels, or the whitelist may be updated to omit theassigned channel and the additional channels. The blacklist may include,for example, a data object that includes a list (or other indication) ofchannels that are not available for assignment to a particular positionin the hopping sequence. In addition, the whitelist may include, forexample, a data object that includes a list (or other indication) ofchannels that are available for assignment to the particular position.

FIG. 5 is a flow chart depicting an example of a process 500 forcreating a multi-bandwidth transmission environment that minimizessignal collisions, by determining a blacklist subset of channels and awhitelist subset of channels. In some implementations, such as describedin regards to FIGS. 1-4, a computing device executing a sequencegeneration module implements operations described in FIG. 5, byexecuting suitable program code. For illustrative purposes, the process500 is described with reference to the examples depicted in FIGS. 1-4.Other implementations, however, are possible.

At block 502, the process 500 involves receiving an indication of agroup of channels, each channel including a respective frequency rangeavailable for transmission on a mesh network, such as, for example, meshnetwork 100. In some cases, the mesh network may communicate using afrequency band defined by IEEE 802.15.4 where the total availablebandwidth may be defined by authorized licensed or unlicensedcommunication bands. In a non-limiting example, an authorizedcommunication band may be bounded by 902 MHz and 928 MHz. In thisexample, the total available bandwidth may be 26 MHz, and the number ofchannels may be defined by the quotient of total available bandwidth anddesired channel width. For example, to obtain a channel width of 400 kHzwith a total available bandwidth of 26 MHz, then there would be 65available channels (e.g., 400 kHz×65=26 MHz). In one aspect the desiredchannel width may be designed to support a desired datarate, such asdescribed by the Shannon Theorem.

At block 504, the process 500 involves receiving an indication of apseudo-random number, for example a pseudo-random number that may beused in a frequency hopping spread spectrum environment. In some cases,the pseudo-random number may be generated by a 9-bit pseudo-randomnumber (PN9) generator. In another aspect, other random or pseudo-randomnumber generators may be used. In certain implementations, operationsrelated to block 504 may be performed at various points in the process500. For example, a first number from the pseudo-random number generatormay be received subsequent to operations related to block 502, and asecond number from the pseudo-random number generator may be receivedsubsequent to operations related to another block, such as one of blocks510 or 512.

At block 506, the process 500 involves assigning a first channel, fromthe group of channels, to the hopping sequence at a first position,based on a first number from the pseudo-random number generator. Forexample, the first position may be associated with the first channel, ora first time slot, or both, based on the first number from the PN9generator at block 504. In some cases, the group of channels may be alist of all available channels for communication, such as availablechannels as received at block 502.

At block 508, the process 500 involves selecting an additional channelfrom the group of channels, based on the first channel, such as anadditional channel that is adjacent to the first channel. For example,the adjacent channel may have a range of frequencies (e.g., about 902.8MHz to about 903.2 MHz) that are contiguous with the range offrequencies of the first channel (e.g., about 903.2 MHz to about 903.6MHz), such that the combined width of the first and additional channelincludes a range of adjacent frequencies (e.g., about 902.8 MHz to about903.6 MHz). In one aspect, selecting an additional channel from thegroup of channels may include selecting multiple additional channels,for example, a guard channel adjacent to the selected additionalchannel. An example of a guard channel is a channel reserved to providea buffer to the communication channel (or channels). As a non-limitingexample, an additional channel may be selected from the group ofchannels as the next higher adjacent channel to the first channel and aguard channel may be the next higher adjacent channel to the additionalchannel. In another aspect, multiple additional channels may be selectedbased on the channel width desired for a high-speed communication or alow-speed communication. In some cases, the one or more additionalchannels (including any guard channels) may be associated with the firstposition in the hopping sequence.

At block 510, the process 500 involves determining a blacklist subset ofthe group of channels, wherein the blacklist subset includes the firstchannel and additional channel, such as the first channel assigned atblock 506, and the one or more additional channels selected at block508. In some cases, a blacklist subset of channels includes previouslyassigned channels, such as the first channel assigned and one or moreselected additional channels. For example, if a first channel, such aschannel 402 f is assigned and an additional channel 402 g is selectedfrom the communication channels 402, the blacklist subset of the groupof channels may include channels 402 f and 402 g. In some cases, otherchannels may also be added to the blacklist subset based on proximity tothe assigned and selected channels, for example a guard channel. In someaspects, operations related to the block 510 may be omitted from theprocess 500.

At block 512, the process 500 involves determining a whitelist subset ofthe group of channels, wherein the whitelist subset omits the firstchannel and the additional channel. In some cases, the whitelist subsetmay be an inverse set of the blacklist subset. For example, if the firstchannel and the additional channel are omitted from the whitelistsubset, the first channel and the additional channel may be included inthe blacklist subset. In some cases, the whitelist subset may includeall available communication channels in the group of channels exceptingthe first channel and the additional channel. In other aspects, thewhitelist subset may include all available channels of the group ofchannels excepting channels that are members of the blacklist subset. Insome aspects, operations related to the block 512 may be omitted fromthe process 500.

At block 514, the process 500 involves assigning a second channel, fromthe whitelist subset to the hopping sequence at a second position, basedon a second number from the pseudo-random number generator. For example,the whitelist subset may include all available channels of the group ofchannels omitting previously assigned channels, which may be members ofthe blacklist subset. In one aspect, a second channel is assigned to thehopping sequence from a pseudo-random selection of a channel in thewhitelist subset. For instance, the second channel, or a second timeslot, or both, may be assigned to the second time slot. In addition, ahigh-speed communication or low-speed communication can be initiated onthe second channel at the second time slot. In some aspects, the secondposition may be associated with the second channel, or the second timeslot, or both, based on the second number from the pseudo-random numbergenerator at block 504.

In some aspects, channels in the whitelist (or blacklist) may beweighted to adjust a probability of being selected (or not selected).For example, if the first channel and the additional channel(s) areincluded in the blacklist, channels in the whitelist subset may beweighted based on how close their frequencies are to the blacklistedchannels. The weighting may, for example, adjust a probability of achannel being selected as a next channel in the hopping sequence.Channels that include frequencies nearby (on the frequency spectrum) tofrequencies in the blacklisted channels may be weighted to have a lowerprobability of selection, and channels with frequencies distant from theblacklisted channels may be weighted to have a higher probability ofselection. In some cases, weighting the probability of selection mayimprove a spread of the hopping sequence across the available spectrum.In addition, weighting the probability of selection may decrease alikelihood of collision events or other interference occurring in themesh network.

Although the process 500 describes creating a multi-bandwidthtransmission environment by determining blacklist and whitelist subsetsof channels, other implementations are possible. For example, a channelhopping sequence may be determined during use of a multi-bandwidthtransmission environment, such as by assigning a channel to a positionin the hopping sequence based on one or more communications currentlybeing transmitted in the environment. The channel may be assigned to thehopping sequence based on a determination that the channel is not in useby the one or more current communications (including high-bandwidth andlow-bandwidth current communications). Such implementations are deemedto be within the scope of the disclosed innovations.

In some implementations, a channel hopping sequence may be generatedprior to use of the sequence. For example, a channel hopping sequencemay be generated for a mesh network (e.g., by a node on the network, bya head-end system) for the mesh network to use for subsequentcommunications. Additionally or alternatively, a channel hoppingsequence may be generated during use of the sequence, such as byassigning the next channel in the hopping sequence at each time slot.For example, during the first time slot the second channel in thesequence could be assigned to the second time slot, and during thesecond time slot the third channel in the sequence could be assigned tothe third time slot.

In some implementations, a channel hopping sequence may be repeated inpart or in whole. For example, once a time slot associated with a finalposition in a repeating hopping sequence passes, the next time slot maybe associated with the first position in the repeating hopping sequence.In some cases, one or more final channels (e.g., in positions at the endof the repeating sequence) are assigned based on one or more of theinitial channels (e.g., at the beginning positions). For example, a nodegenerating a hopping sequence may determine the final positions in thesequence based on a blacklist that includes channels assigned to theinitial positions. Using a blacklist with the initial assigned channelsmay reduce the likelihood of a particular channel being assigned to boththe final position and the initial position in the hopping sequence.Additionally or alternatively, one or more initial channels are assignedbased on one or more of the final channels in the sequence. For example,the node generating the hopping sequence may determine the initialpositions based on a blacklist that includes channels assigned to thefinal positions.

In some cases, a subsequent channel hopping sequence may be generated,for use after completion of a previous hopping sequence. For example,once the time slot associated with the final position in the previoushopping sequence passes, the subsequent hopping sequence may begenerated based on additional data received from the pseudo-randomnumber generator. The subsequent hopping sequence may be generated basedon the blacklist or whitelist, or both, from the previous hoppingsequence (e.g., the blacklist or whitelist may “wrap” with the hoppingsequence). For example, if the blacklist associated with the previoushopping sequence indicates that a particular channel is unavailable,such as because it was assigned to the final position in the previoushopping sequence, the first position in the additional hopping sequencemay be assigned based on the whitelist of available channels (e.g.,omitting the particular channel).

In some cases, a first channel may be omitted from the whitelist, orincluded in the blacklist, for a first time duration associated with afirst transmission mode, for example, a low-speed transmission mode.When a channel is assigned to the hopping sequence at a position afterthe first time duration, the whitelist (or blacklist) may be updated toinclude (or omit) the first channel, such that the first channel isavailable to be assigned to the hopping sequence at an additionalposition that is after the first time duration. For example, FIG. 3illustrates that channel 302 d may be excluded from the whitelist (orincluded on the blacklist) for a time duration of seven time slots,which corresponds to up to seven positions in the hopping sequence.

Furthermore, additional channels (e.g., guard channels and/orcommunication channels adjacent to the first channel) may be omittedfrom the whitelist, or included in the blacklist, for a second timeduration associated with a second transmission mode, for example, ahigh-speed transmission mode. When a channel is assigned to the hoppingsequence at a position after the second time duration, the whitelist (orblacklist) may be modified to include (or omit) the additional channels,such that the additional channels may be reassigned to the hoppingsequence at an additional position that is after the second timeduration. In some cases, the whitelist may be updated to include theadditional channels and omit the first channel, such as if theadditional position is subsequent to the second time duration and priorto the first time duration. For example, FIG. 3 illustrates that channel302 d may added to the whitelist after a time duration of seven timeslots, whereas channel 302 f may be added to the whitelist after a timeduration of two time slots. In addition, the blacklist may be updated toomit the additional channels and include the first channel. Othercombinations of transmission modes, channel assignments, and timedurations are possible, including channels associated with multipletransmission modes, and longer or shorter time durations.

FIG. 6 is a flow chart depicting an example of a process 600 formodifying a whitelist of channels, such as a whitelist associated with achannel hopping sequence. In some implementations, such as described inregards to FIGS. 1-5, a computing device executing a sequence generationmodule implements operations described in FIG. 6, by executing suitableprogram code. For illustrative purposes, the process 600 is describedwith reference to the examples depicted in FIGS. 1-5 and 7-9. Otherimplementations, however, are possible. In some implementations, thewhitelist, blacklist, or both may be updated based on time durationsassociated with various modes of transmission for a communication, asdescribed elsewhere herein.

At block 602, the process 600 involves receiving a channel hoppingsequence, such as a channel hopping sequence generated as described inregards to FIG. 5. In one aspect, the channel hopping sequence isassociated with a whitelist, such as a whitelist subset of channelsavailable for use in the channel hopping sequence. Channels included inthe hopping sequence may be associated with respective time slots orpositions. For example, the hopping sequence may include a first channelassociated with a first time slot, where the first channel is at a firstposition in the hopping sequence. The first channel may be assignedbased on a first pseudo-random number from a pseudo-random numbergenerator. In some implementations, the channel hopping sequence may bebased on an output (or a modified output) of a PN9 generator. Forexample, a PN9 generator may generate a pseudo-random number or sequenceof pseudo-random numbers that may be modified based on communicationscharacterized by a channel width and transmission time, such asdescribed elsewhere herein. The whitelist associated with the channelhopping sequence may omit the first channel.

At block 604, the process 600 involves calculating a reserved timeduration of the first channel associated with the first time slot. Insome aspects, the reserved time duration is based on a sum of the firsttime slot and a quantity of time slots associated with a transmissionmode, or with a communication that is transmitted via the first channel.For example, the low-speed communication 303 may be transmitted via thecommunication channel 302 d, as described in regards to FIG. 3. In somecases, the low-speed communication 303 is transmitted during a quantityof time slots 301 a-301 g. In addition, the communication channel 302 dmay have a reserved time duration of seven time slots, based on the timeslots 301 a-301 g associated with the low-speed communication 303.

At block 605, the process 600 involves assigning a second channel to thehopping sequence at a second position, the second channel associatedwith a second time slot. In some cases, the second channel is assignedto the hopping sequence based on an additional output (or modifiedoutput) from the PN9 pseudo-random number generator, such as anadditional pseudo-random number.

At block 606, the process 600 involves comparing the reserved timeduration (e.g., of the first channel) with the second time slotassociated with the second channel. For example, the second channel maybe associated with time slot 301 j. Operations related to block 606 maycompare the reserved time duration of the communication channel 302 d(e.g., time slots 301 a-301 g associated with the low-speedcommunication 303) to the second time slot 301 j.

At block 608, the process 600 involves determining whether the secondtime slot is subsequent to the reserved time duration of the firstchannel. For example, a determination may be made whether the secondtime slot 301 j is subsequent to a final time slot (e.g., time slot 301g) that is associated with the low-speed communication 303.

If operations related to block 608 determine that the second time slotis not subsequent to the reserved time duration (e.g., the second timeslot occurs prior to the end of the reserved time duration), process 600may proceed to another block, such as block 602 or 604. For example, awhitelist that omits the first channel, such as communication channel302 d, may remain unmodified, such that the first channel remainsomitted from the whitelist.

If operations related to block 608 determine that the second time slotis subsequent to the reserved time duration (e.g., the second time slotoccurs after the end of the reserved time duration), process 600 mayproceed to another block, such as block 610. At block 610 the process600 involves modifying the whitelist associated with the channel hoppingsequence. In some aspects, the whitelist may be updated to include thefirst channel. For example, responsive to determining that the secondtime slot 301 j is subsequent to the reserved time duration of thecommunication channel 302 d (e.g., subsequent to time slot 301 g), awhitelist associated with a channel hopping sequence of the mixed-signaltransmission environment 300 may be modified, such as to include thecommunication channel 302 d.

In some aspects, operations related to the process 600 may releasecommunication channels that were assigned to a hopping sequence atprevious positions, such as to reuse the released communication channelsin additional positions, or for additional communications. Furthermore,operations related to the process 600 may release various channels thatare assigned to a particular position based on respective transmissionmodes that are associated with respective ones of the various channels.For example, in a hopping sequence associated with a mixed-signaltransmission environment 700, as described in regards to FIG. 7,channels 702 c, 702 d, and 702 e may each be assigned to the hoppingsequence at a first position at a first time slot (e.g., time slot 701a). The channel 702 d may be associated with a first transmission mode(e.g., a low-bandwidth mode), and may have a reserved time duration ofseven time slots (e.g., time slots 701 a-701 g). The channels 702 c and702 e may each be associated with a second transmission mode (e.g., ahigh-bandwidth mode), and may have a reserved time duration of two timeslots (e.g., time slots 701 a-701 b). In some implementations, awhitelist (or blacklist) associated with the mixed-signal transmissionenvironment 700 may be updated based on the respective transmissionmodes associated with various channels. For example, a sequencegeneration module implementing operations related to process 600 mayassign at least channel 702 f to a second position in the hoppingsequence, such as at time slot 701 g. The sequence generation module maydetermine that the second time slot of the second position (e.g., timeslot 701 g) is subsequent to the time slot of the first position (e.g.,time slot 701 a). In addition, the sequence generation module maycompare the reserved time durations of each of channels 702 c, 702 d,and 702 e to the second time slot. Responsive to determining that thesecond time slot (e.g., time slot 701 g) is prior to reserved timeduration of channel 702 d and is subsequent to the reserved timedurations of channels 702 c and 702 e, the whitelist for environment 700may be modified to include channels 702 c and 702 e and omit (orcontinue to omit) channel 702 d. In some cases, channels associated witha particular transmission mode (e.g., a high-bandwidth mode) arereleased for reuse at hopping sequence positions prior to channelsassociated with another transmission mode (e.g., a low-bandwidth mode).

In addition, updating the whitelist may allow a sequence generationmodule to update a blacklist. For example, a blacklist associated with achannel hopping sequence may indicate that one or more channels areunavailable for assignment to the channel hopping sequence (e.g., arealready assigned, or might cause collisions with transmission on otherchannels already assigned). In some cases, a blacklist is determined asan inverse of a whitelist. In addition, the whitelist may be determinedas an inverse of the blacklist. Furthermore, both the whitelist and theblacklist may be determined based on the channel hopping sequence (e.g.,based on channels already assigned).

FIG. 7 is a diagram depicting a mixed-signal transmission environment700, according to the methods of the present disclosure. For example,mixed-signal environment 700 may have multiple time slots 701 a-701 s,collectively referred to herein as time slots 701, and multiplecommunication channels 702 a-702 i, collectively referred to herein ascommunication channels 702. In some cases, the mixed-signal environment700 could include at least two signals with different communicationchannel widths. The mixed-signal environment 700 can also allowimplementation of FHSS, such as a channel hopping sequence generatedbased on a pseudo-random sequence. In some cases, certain aspects ofFIG. 7 may be better understood when considered in view of FIG. 8.

In some aspects, one or more nodes included in a mesh network maytransmit communications in the mixed-signal environment 700 based on thegenerated channel hopping sequence. For example, a node communication703 may be initiated at time slot 701 a. In this example, the channelhopping sequence includes channel 702 d at time slot 701 a. The nodecommunication 703 can be transmitted in a low-bandwidth mode or ahigh-bandwidth mode. In one aspect, the transmission mode may beselected based on a link quality indicator or other factors, such as anindicator determined by a link quality assessment module. Additionalaspects of the transmission mode are discussed related to FIG. 8. Inmixed-signal environment 700, multiple node communications, such as nodecommunications 703, 704, 705, 706, and 707 may be respectivelytransmitted in a high-bandwidth or low-bandwidth mode. In a non-limitingexample, node communication 703 may be transmitted in a low-bandwidthmode, while node communication 704 may be transmitted in ahigh-bandwidth mode. In one aspect, when a node is communicating on oneor more particular channels, the particular channels may be removed fromthe channel hopping sequence for the duration of the communication. Forexample, if a node is transmitting the communication 703, the channelsassociated with the communication 703 (e.g., channels 702 c-702 e) maybe removed from the hopping sequence for the duration of thetransmission (e.g., during time slots 701 a-701 b for a high-bandwidthcommunication, during time slots 701 a-701 g for a low-bandwidthcommunication).

In some cases, a node may transmit a communication on a channelindicated by the channel hopping sequence, during a reserved timeassociated with the indicated channel. For example, a node may transmitthe node communication 703 as a high-bandwidth communication on channels702 c-702 e during time slots 701 a-701 b. In addition or alternativeaspects, the node may transmit the node communication 703 as alow-bandwidth communication on channel 701 d during time slots 701 a-701g. In one aspect, the channel reservation may expire at or after themaximum transmission time that is reserved for the transmission mode.For example, at time slot 701 g, the node communication 704 may betransmitted on channel 702 e, which was reserved by node communication703 for high-bandwidth communication (e.g., during time slots 701 a-701b). Conversely, node communication 704 might not be transmitted onchannel 702 d, which is reserved for node communication 703 forlow-bandwidth communication (e.g., during the time slot 701 g). In somecases, guard channels may be used, and could include an additionalchannel reservation adjacent to the high- or low-bandwidth communicationchannels as described herein. In some aspects, a guard channel can beimplemented on the a higher adjacent channel (e.g., having adjacentfrequencies higher than the communication channel), a lower adjacentchannel (e.g., having adjacent frequencies lower than the communicationchannel), or both.

FIG. 8 is a diagram depicting an example of a reserved transmissionblock for transmission of a high- or low-bandwidth signal used fortransmitting communications in mixed-signal transmission environment800. In some cases, the mixed-signal transmission environment 800 hasmultiple time slots 801 a-801 s, collectively referred to as time slots801, and multiple communication channels 802 a-802 i, collectivelyreferred to as communication channels 802. In some cases, themixed-signal environment 800 is suitable for multiple communicationscarried on transmission signals of different channel widths. While FIG.8 is described in regards to a single communication transmitted betweentwo nodes, it should be appreciated that such aspects may also apply tomultiple communications transmitted between multiple nodes.

For example, a metering node may have data available for transmission tothe collector node, such as described in relation to FIG. 1. In somecases, the metering node is capable of transmitting in a low-bandwidthmode or high-bandwidth mode. In one aspect, the metering node selectsthe low-bandwidth mode or high-bandwidth mode based at least in part ona link quality indicator. An example of a link quality indicator couldbe a signal strength metric, or another metric which relates to thecapability of a transmitting node and a receiving node to have asuccessful communication transmission. For instance, if the link qualityindicator is above a threshold signal quality, the transmitting node maytransmit using high-bandwidth mode communication, such as illustratedhigh-bandwidth mode communication 804. In another aspect, if the linkquality indicator is below a threshold signal quality, the transmittingnode may transmit using low-bandwidth mode communication, such asillustrated low-bandwidth mode communication 803.

According to one aspect, a reserved transmission block 805 can beassigned for a particular communication, such that the reservedtransmission block 805 would reserve channels and time slots for both ahigh-bandwidth mode communication, and a low-bandwidth modecommunication. For example, reserved transmission block 805 includeschannel 802 f for time slots 801 g-801 l, such as a reservation for alow-bandwidth mode communication 803. In addition, the reservedtransmission block 805 includes channels 802 e-g for time slots 801 g-h,such as a reservation for a high-bandwidth mode communication 804. Insome cases, both a high-bandwidth communication mode and a low-bandwidthcommunication mode may be associated with any given reservedtransmission block 805. For example, a transmitting node can determine,based at least in part on a link quality indicator, which mode oftransmission is optimal to achieve a successful transmission using thechannels and time slots included in the reserved transmission block 805.

Any suitable computing system or group of computing systems can be usedfor performing the operations described herein. For example, FIG. 9 is ablock diagram depicting a computing environment capable of generating achannel hopping sequence for a mesh network as described herein,according to certain aspects.

A node 901 may be a network component on a mesh network, such asdescribed in regards to FIG. 1. The depicted example of a node 901includes one or more processors 902 communicatively coupled to one ormore memory devices 904. The processor 902 executes computer-executableprogram code or accesses information stored in the memory device 904.Examples of processor 902 include a microprocessor, anapplication-specific integrated circuit (ASIC), a field-programmablegate array (FPGA), or other suitable processing device. The processor902 may include any number of processing devices, including one.

The memory device 904 includes any suitable non-transitorycomputer-readable medium for storing a sequence generation module 905, alink quality assessment module 913, a pseudo-random number generator915, a communication channel list 917, and other parameters or datarelating to generating the channel hopping sequence. Thecomputer-readable medium may include any electronic, optical, magnetic,or other storage device capable of providing a processor withcomputer-readable instructions or other program code. Non-limitingexamples of a computer-readable medium include a magnetic disk, a memorychip, a ROM, a RAM, an ASIC, optical storage, magnetic tape or othermagnetic storage, or any other medium from which a processing device mayread instructions. The instructions may include processor-specificinstructions generated by a compiler or an interpreter from code writtenin any suitable computer-programming language, including, for example,C, C++, C#, Visual Basic, Java, Python, Perl, JavaScript, andActionScript.

The node 901 may also include a number of external or internal devicessuch as input or output devices. For example, the node 901 is shown withan input/output (I/O) interface 908 that may receive input from inputdevices or provide output to output devices. A bus 906 may also beincluded in the node 901. The bus 906 may communicatively couple one ormore components of the node 901.

The node 901 may execute program code that configures the processor 902to perform one or more of the operations described above with respect toFIGS. 1-8. The program code includes operations related to, for example,one or more of sequence generation module 905, the link qualityassessment module 913, the pseudo-random number generator 915, thecommunication channel list 917, or other suitable applications or memorystructures that perform one or more operations described herein. Theprogram code may be resident in the memory device 904 or any suitablecomputer-readable medium and may be executed by the processor 902 or anyother suitable processor. In some aspects, the program code describedabove, sequence generation module 905, the link quality assessmentmodule 913, the pseudo-random number generator 915, the communicationchannel list 917, and other parameters or data relating to communicatingon communication channels are stored in the memory device 904, asdepicted in FIG. 9. In additional or alternative aspects, one or more ofsequence generation module 905, the link quality assessment module 913,the pseudo-random number generator 915, the communication channel list917, and the program code described above are stored in one or morememory devices accessible via a data network, such as a memory deviceaccessible via a cloud service.

The node 901 depicted in FIG. 9 also includes at least one networkinterface 910. The network interface 910 includes any device or group ofdevices suitable for establishing a wired or wireless data connection toone or more data networks 912. Non-limiting examples of the networkinterface 910 include an Ethernet network adapter, a modem, radiotransmitter and/or the like. The group of metering nodes 103, head-endsystem 101, and collector 102 are connected to the node 901 via network912. The network 912 may include a mesh network, such as describedherein. In some cases, the network 912 may include additional networks,such as (without limitation) the Internet, a private network (includinga virtual private network), or any other suitable network. In someimplementations, the group of metering nodes 103, the head end system101, or the collector 102 may perform some of the operations describedherein, such as generating the hopping sequence. The node 901 may beable to communicate with one or more of the metering nodes 103, head-endsystem 101, and collector 102 using the network interface 910.

General Considerations

Numerous specific details are set forth herein to provide a thoroughunderstanding of the claimed subject matter. However, those skilled inthe art will understand that the claimed subject matter may be practicedwithout these specific details. In other instances, methods,apparatuses, or systems that would be known by one of ordinary skillhave not been described in detail so as not to obscure claimed subjectmatter.

Unless specifically stated otherwise, it is appreciated that throughoutthis specification discussions utilizing terms such as “processing,”“computing,” “calculating,” “determining,” and “identifying” or the likerefer to actions or processes of a computing device, such as one or morecomputers or a similar electronic computing device or devices, thatmanipulate or transform data represented as physical electronic ormagnetic quantities within memories, registers, or other informationstorage devices, transmission devices, or display devices of thecomputing platform.

The system or systems discussed herein are not limited to any particularhardware architecture or configuration. A computing device can includeany suitable arrangement of components that provides a resultconditioned on one or more inputs. Suitable computing devices includemultipurpose microprocessor-based computer systems accessing storedsoftware that programs or configures the computing system from a generalpurpose computing apparatus to a specialized computing apparatusimplementing one or more implementations of the present subject matter.Any suitable programming, scripting, or other type of language orcombinations of languages may be used to implement the teachingscontained herein in software to be used in programming or configuring acomputing device.

Implementations of the methods disclosed herein may be performed in theoperation of such computing devices. The order of the blocks presentedin the examples above can be varied—for example, blocks can bere-ordered, combined, and/or broken into sub-blocks. Certain blocks orprocesses can be performed in parallel.

The use of “adapted to” or “configured to” herein is meant as open andinclusive language that does not foreclose devices adapted to orconfigured to perform additional tasks or steps. Additionally, the useof “based on” is meant to be open and inclusive, in that a process,step, calculation, or other action “based on” one or more recitedconditions or values may, in practice, be based on additional conditionsor values beyond those recited. Headings, lists, and numbering includedherein are for ease of explanation only and are not meant to belimiting.

While the present subject matter has been described in detail withrespect to specific implementations thereof, it will be appreciated thatthose skilled in the art, upon attaining an understanding of theforegoing, may readily produce alterations to, variations of, andequivalents to such implementations. Accordingly, it should beunderstood that the present disclosure has been presented for purposesof example rather than limitation, and does not preclude inclusion ofsuch modifications, variations, and/or additions to the present subjectmatter as would be readily apparent to one of ordinary skill in the art.

What is claimed is:
 1. A method of generating a channel hopping sequencefor communicating across a wireless mesh network, the method comprising:receiving an indication of a group of channels, each channel including arespective frequency range for communicating on the wireless meshnetwork and available for use in the channel hopping sequence, whereinthe channel hopping sequence defines an ordered sequence of channelnumbers spanning multiple time slots; assigning a first channel, fromthe group of channels, to the channel hopping sequence at a firstposition in the channel hopping sequence; selecting an additionalchannel, from the group of channels, wherein the additional channel isadjacent to the first channel, wherein frequencies included in acombined width of the first channel and the additional channel areavailable for transmissions at a first time slot of the first position,wherein frequencies included in a first width of the first channel areavailable for transmissions at a second time slot of the first position;and assigning a second channel, from the group of channels, to thechannel hopping sequence at a second position in the channel hoppingsequence, wherein the second channel is different from the first channeland the additional channel.
 2. The method of claim 1, further comprisingdetermining a blacklist subset of the group of channels, wherein theblacklist subset includes the first channel and the additional channel,wherein: the blacklist subset indicates that the first channel isunavailable for a first quantity of time slots that is based on amaximum transmission time of a first transmission mode, and theblacklist subset indicates that the additional channel is unavailablefor an additional quantity of time slots that is based on a maximumtransmission time of a second transmission mode.
 3. The method of claim1, further comprising: calculating a reserved time duration of the firstchannel, wherein the reserved time duration is based on a sum of thefirst time slot and a quantity of time slots associated with a maximumtransmission time of a first transmission mode; and assigning a thirdchannel, from the group of channels, to the channel hopping sequence ata third position, wherein the third position is associated with a thirdtime slot.
 4. The method of claim 3, further comprising: calculating anadditional reserved time duration of the additional channel, wherein theadditional reserved time duration is based on an additional sum of thefirst time slot and an additional quantity of time slots associated withan additional maximum transmission time of a transmission mode.
 5. Themethod of claim 1, wherein a communication that is transmitted at thefirst position is transmitted via a combination of frequencies includedin the frequency ranges of the first channel and the additional channel.6. The method of claim 1, wherein: frequencies included in the firstwidth of the first channel are available at the first time slot for alow-bandwidth transmission mode, and frequencies included in thecombined width of the first channel and the additional channel areavailable at the first time slot for a high-bandwidth transmission mode.7. The method of claim 1, further comprising: selecting another channelfrom the group of channels based on the first channel, determining awhitelist subset of the group of channels, wherein the whitelist subsetomits the first channel, the additional channel, and the anotherchannel, wherein frequencies included in a combined width of the firstchannel and at least the another channel are available for transmissionsat the first time slot.
 8. The method of claim 1, wherein a node deviceon the mesh network: selects the first position in the channel hoppingsequence for a communication with an additional node on the meshnetwork; determines the first channel and the first time slot based onthe first position in the channel hopping sequence; determines a signalquality associated with the additional node; and based on the signalquality, selects a first transmission mode or a second transmission modefor the communication, wherein the first transmission mode is selectedresponsive to determining that the signal quality is below a thresholdsignal quality, wherein the second transmission mode is selectedresponsive to determining that the signal quality is above the thresholdsignal quality.
 9. A node capable of generating a channel hoppingsequence for communicating on a wireless mesh network, the nodecomprising a processor configured with code to perform operationscomprising: receiving an indication of a group of channels, each channelincluding a respective frequency range for communicating on the wirelessmesh network and available for use in the channel hopping sequence,wherein the channel hopping sequence defines an ordered sequence ofchannel numbers spanning multiple time slots; assigning a first channel,from the group of channels, to the channel hopping sequence at a firstposition in the channel hopping sequence; selecting an additionalchannel, from the group of channels, wherein the additional channel isadjacent to the first channel, wherein frequencies included in acombined width of the first channel and the additional channel areavailable for transmissions at the first position; and assigning asecond channel, from the group of channels, to the channel hoppingsequence at a second position in the channel hopping sequence, whereinthe second channel is different from the first channel and theadditional channel.
 10. The node of claim 9, the operations furthercomprising: calculating a reserved time duration of the first channel,wherein the reserved time duration is based on a sum of a quantity oftime slots associated with a communication transmitted via the firstchannel; and assigning another channel, from the group of channels, tothe channel hopping sequence at another position.
 11. The node of claim10, the operations further comprising: calculating an additionalreserved time duration of the additional channel, wherein the additionalreserved time duration is based on an additional sum of an additionalquantity of time slots associated with a maximum transmission time of atransmission mode.
 12. The node of claim 9, wherein a communication thatis transmitted at the first position is transmitted via a combination offrequencies included in the frequency ranges of the first channel andthe additional channel.
 13. The node of claim 9, the operations furthercomprising: selecting the first position in the channel hopping sequencefor a communication with an additional node on the mesh network;determining the first channel based on the selected first position inthe channel hopping sequence; determining a signal quality associatedwith the additional node; and based on the signal quality, selecting afirst transmission mode or a second transmission mode for thecommunication, wherein the first transmission mode is selectedresponsive to determining that the signal quality is below a thresholdsignal quality, wherein the second transmission mode is selectedresponsive to determining that the signal quality is above the thresholdsignal quality.
 14. The node of claim 13, wherein: the first channel isassociated with the first transmission mode and the additional channelis associated with the second transmission mode; responsive to selectingthe first transmission mode, the node transmits the communication via afrequency range included in the first channel; and responsive toselecting the second transmission mode, the node transmits thecommunication via a combination of the frequency ranges of the firstchannel and the additional channel.
 15. A wireless mesh networkcomprising multiple nodes, wherein at least one node of the multiplenodes is capable of generating a channel hopping sequence, such thateach of the multiple nodes communicates on the wireless mesh networkaccording to the generated channel hopping sequence, wherein the atleast one node comprises a processor configured with code to performoperations comprising: receiving an indication of a group of channels,each channel including a respective frequency range for communicating onthe wireless mesh network and available for use in the channel hoppingsequence, wherein the channel hopping sequence defines an orderedsequence of channel numbers spanning multiple time slots; assigning afirst channel, from the group of channels, to the channel hoppingsequence at a first position in the channel hopping sequence; selectingan additional channel, from the group of channels, wherein theadditional channel is adjacent to the first channel, wherein frequenciesincluded in a combined width of the first channel and the additionalchannel are available for transmissions at the first position; andassigning a second channel, from the group of channels, to the channelhopping sequence at a second position in the channel hopping sequence,wherein the second channel is different from the first channel and theadditional channel.
 16. The wireless mesh network of claim 15, theoperations further comprising determining a blacklist subset of thegroup of channels, wherein the blacklist subset includes the firstchannel and the additional channel, wherein: the blacklist subsetindicates that the first channel is unavailable for a first quantity oftime slots that is based on a maximum transmission time of a firsttransmission mode, and the blacklist subset indicates that theadditional channel is unavailable for an additional quantity of timeslots that is based on a maximum transmission time of a secondtransmission mode.
 17. The wireless mesh network of claim 15, theoperations further comprising: calculating a reserved time duration ofthe first channel, wherein the reserved time duration is based on a sumof a quantity of time slots associated with a communication transmittedvia the first channel; and assigning another channel, from the group ofchannels, to the channel hopping sequence at another position.
 18. Thewireless mesh network of claim 15, wherein a communication that istransmitted at the first position is transmitted via a combination offrequencies included in the frequency ranges of the first channel andthe additional channel.
 19. The wireless mesh network of claim 15,wherein a particular node of the multiple nodes: selects the firstposition in the channel hopping sequence for a communication with anadditional one of the multiple nodes; determines the first channel basedon the first position in the channel hopping sequence; determines asignal quality associated with the additional one of the multiple nodes;and based on the signal quality, selects a first transmission mode or asecond transmission mode for the communication, wherein the firsttransmission mode is selected responsive to determining that the signalquality is below a threshold signal quality, wherein the secondtransmission mode is selected responsive to determining that the signalquality is above the threshold signal quality.
 20. The wireless meshnetwork of claim 19, wherein: the first channel is associated with thefirst transmission mode and the additional channel is associated withthe second transmission mode; responsive to selecting the firsttransmission mode, the particular node transmits the communication via afrequency range included in the first channel; and responsive toselecting the second transmission mode, the particular node transmitsthe communication via a combination of the frequency ranges of the firstchannel and the additional channel.